package com.bjsxt.mappers;

import com.bjsxt.domain.AdminBank;
import com.bjsxt.dto.AdminBankDto;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * description:
 * OpenFeign 远程调用 AdminBank <--> AdminBankDto 的映射转换对象
 *
 * @author ALIENWARE
 * @version v1.0.0
 * @create 12/29/2023
 **/
@Mapper(componentModel = "spring")
public interface AdminBankDtoMapper {

    /**
     * 获取该对象的实例，这一步与类加载器有关，有兴趣学学 JVM
     */
    // 获取该对象的实例
    AdminBankDtoMapper INSTANCE = Mappers.getMapper(AdminBankDtoMapper.class);

    /**
     * 将 AdminBank 对象转换为 AdminBankDto 对象
     *
     * @param source AdminBank 对象
     * @return 转换为的 AdminBankDto 对象
     */
    AdminBankDto convert2Dto(AdminBank source);

    /**
     * 将 AdminBankDto 对象转换为 AdminBank 对象
     *
     * @param source AdminBankDto 对象
     * @return 转换为的 AdminBank 对象
     */
    AdminBank convert2Entity(AdminBankDto source);

    /**
     * 将 AdminBank 集合对象转换为 AdminBankDto 集合对象
     *
     * @param source AdminBank 集合对象
     * @return 转换为的 AdminBankDto 集合对象
     */
    List<AdminBankDto> convert2Dto(List<AdminBank> source);

    /**
     * 将 AdminBankDto 集合对象转换为 AdminBank 集合对象
     *
     * @param source AdminBankDto 集合对象
     * @return 转换为的 AdminBank 集合对象
     */
    List<AdminBank> convert2Entity(List<AdminBankDto> source);
}